// 导入路由对象
const express = require("express")
const router = express.Router()//创建路由
// 导入控制器类
const Statistics = require("../controllers/statisticsController")
const statisticsObj = new Statistics()
const Jwt = require("../common/jwt")

// 获取统计数据
// 请求地址：http://localhost:3001/api/statistics/get
// 参数：token (可通过headers提交)
router.post("/get", async (req, res) => {
  let token = req.headers.token || req.body.token;

  if (token == undefined) {
    res.status(404).json({
      code: -1,
      msg: "缺少参数"
    })
  } else {
    // 校验token 判断管理员是否登录
    let result = new Jwt(token).verifyToken();
    if (result.code == 200) {
      // 获取统计数据
      await statisticsObj.getStatistics()
        .then(
          result => {
            res.status(200).json(result);
          },
          err => {
            res.status(500).json(err)
          }
        )
    } else {
      res.status(400).json({
        code: -1,
        msg: "您尚未登录"
      })
    }
  }
})

// 获取公开的基础统计数据（无需token）
// 请求地址：http://localhost:3001/api/statistics/public
router.get("/public", async (req, res) => {
  try {
    // 获取统计数据（不包含敏感信息）
    await statisticsObj.getPublicStatistics()
      .then(
        result => {
          res.status(200).json(result);
        },
        err => {
          res.status(500).json(err)
        }
      )
  } catch (error) {
    res.status(500).json({
      code: -1,
      msg: "获取统计数据失败",
      err: error
    })
  }
})

// 暴露统计路由
module.exports = router;

